$(function () {
    var laypage = layui.laypage;
    // 定义查询参数对象，将来请求数据的时候，需要将请求的参数对象提交到服务器
    var q = {
        pagenum: 1, // 页码值
        pagesize: 2, // 每页显示几条数据
        cate_id: '', // 文章分类的id
        state: '', // 文章的发布状态
    }

    // 获取文章列表数据
    initTable()

    function initTable() {
        $.ajax({
            method: 'GET',
            url: '/my/article/list',
            data: q,
            success(res) {
                if (res.status !== 0) {
                    return layui.layer.msg("获取文章列表失败")
                }
                // 使用模板引擎渲染页面数据
                var htmlStr = template("tpl_table", res)
                $("tbody").html(htmlStr)
                // 调用渲染分页的方法
                renderPage(res.total)
            }
        })
    }

    // 定义过滤器函数
    template.defaults.imports.DataFormat = function (date) {
        var dt = new Date(date)
        var y = dt.getFullYear().toString().padStart(2, '0')
        var m = (dt.getMonth() + 1).toString().padStart(2, '0')
        var d = dt.getDate().toString().padStart(2, '0')

        var hh = dt.getHours().toString().padStart(2, '0')
        var mm = dt.getMinutes().toString().padStart(2, '0')
        var ss = dt.getSeconds().toString().padStart(2, '0')

        return y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss
    }


    // 定义加载文章分类
    initCate()

    function initCate() {
        $.ajax({
            method: "GET",
            url: '/my/article/cates',
            success(res) {
                if (res.status !== 0) {
                    return layui.layer.msg('初始化文章失败')
                }
                var htmlStr = template("tpl_cate", res)
                $("[name=cate_id]").html(htmlStr)
                // 一定要记得调用form.render（）方法
                layui.form.render()
            }
        })
    }

    // 实现筛选功能
    $("#form_search").on("submit", function (e) {
        e.preventDefault()
        // 获取表单中选中项的值
        var cate_id = $('[name=cate_id]').val()
        var state = $('[name=state]').val()
        q.cate_id = cate_id
        q.state = state
        initTable()
    })




    // 删除文章数据
    $(document).on("click", "#btn_delete", function () {
        var id = $(this).attr('data-id')
        // console.log(id);
        if ($("tbody #btn_delete").length == 1) {
            q.pagenum--
        }
        q.pagenum = q.pagenum==0?1:q.pagenum
        layui.layer.confirm('确认删除', {
            icon: 3,
            title: '提示'
        }, function (index) {
            $.ajax({
                method: 'GET',
                url: '/my/article/delete/' + id,
                success(res) {
                    if (res.status !== 0) {
                        return layui.layer.msg("删除文章失败")
                    }
                    layui.layer.msg("删除文章成功")
                    initTable()
                }
            })
            layui.layer.close(index)
        })

    })




    // 定义渲染分页的方法
    function renderPage(total) {
        // console.log(total);
        // 调用 laypage.render 方法来渲染分页的结构
        laypage.render({
            elem: 'pageBox', // 分页容器 id
            count: total, // 总数据条数
            limit: q.pagesize, // 每页显示几行数据
            curr: q.pagenum, //  默认在第几页
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            limits: [2, 3, 5, 10],
            // 点击页码或者调用 render 方法 都会出发 jump 回调
            jump(obj, first) {
                q.pagenum = obj.curr // 把最新的页码值 赋值到 q
                q.pagesize = obj.limit
                if (!first) {
                    console.log(obj.curr);
                    initTable() // 根据最新的 q 获取对应的数据列表，并渲染表格
                }
            }
        })
    }













})